1. Field of the Invention
The present invention relates generally to the field of systems for optimizing data storage in computers. More specifically, the present invention discloses a system for modifying JCL parameters to optimize data storage allocations based on historical space requirements for each dataset.
2. Statement of the Problem
Many mainframe computers used in business environments run batch jobs controlled by job control language (JCL) statements. The JCL statements provide instructions to the computer operating system specifying each program to be executed and defining the datasets that will be used by the program. A JCL statement typically defines a dataset in terms of its name, physical data storage device, size, and other parameters required by the operating system.
It is common practice for a set of JCL statements to be written at the time a new application is first installed. The requested data storage allocations and other parameters for each dataset are based on the estimated needs of the job, before information on the actual data requirements of the job is available. Programmers writing JCL statements tend to err on the side of requesting too much space for each dataset to prevent errors during job execution. This can result in JCL statements that request space allocations that are several times larger than the actual space requirements for datasets.
After initial installation, batch jobs are typically run on a periodic basis according to the needs of the particular business (e.g., to generate invoices or paychecks). The JCL statements initially created for a job are often reused without change whenever the job is run due to the difficulty of writing and debugging JCL statements. As a result, JCL statements containing inflated or inaccurate data storage allocation requests continue to be used indefinitely, even after the application has been run for many years.
The prior art includes systems that monitor actual data storage requirements for datasets and generate statistical reports. For example, the IBM data facilities storage management system (DFSMS) includes a section that analyzes actual data storage requirements for datasets and generates reports. Sterling Software and Boole & Babbage also offer programs to analyze usage patterns and generate reports. However, these prior art systems do not optimize JCL statements. The JCL programmer must review and understand the printed report and make appropriate revisions to the JCL statements for each job.
A somewhat different, but related problem arises from the need to manage the migration of datasets. For example, disk datasets are often periodically moved to tape for archival purposes. Tape datasets may be stored on-site for period of time and then purged or moved off-site for archival storage. Similarly, archival tape datasets are generally purged after some period of time. Many facilities handle this problem of dataset migration on an ad hoc basis or according to historical practices that may, or may not accurately reflect an optimal dataset migration strategy based on actual use patterns for each dataset or class of datasets.
The prior art in this field also includes U.S. Pat. No. 5,506,986 (Healy). Healy discloses a storage management system that monitors historical usage patterns for datasets and dynamically selects the most appropriate media type and specific device to store each dataset. However, the Healy system does not modify JCL statements. Instead, Healy system is implemented as part of the operating system, and makes decisions at the time that dataset allocations are actually made.
The system described by Healy has a significant disadvantage in that it requires modification of the operating system. JCL is commonly used in association with the operating systems of large mainframe computers that cost millions of dollars. These mainframe computers are typically used by large businesses and governmental entities to handle their central data processing needs. For example, recent Y2K concerns about possible interruption of business and governmental services have largely focused on legacy mainframe systems. Fear of such interruptions makes many mainframe owners justifiably reluctant to consider modifications to their operating systems, except as part of standard upgrades provided by the manufacturer (e.g., IBM).
Mainframe owners also have a strong interest in enforcing data storage policies with regard to all users to maintain uniformity, optimize storage use, optimize data migration and archiving procedures, and provide a means for reliably tracing the cause of any storage allocation problems that might occur. In the IBM MVS operating system, these data storage policies are implemented by a portion of the operating system commonly known as the automatic class selection (ACS) procedure. The ACS processes dataset allocation requests after the JCL statements have been parsed and converted into control blocks containing the corresponding parameters. The ACS normally makes the final allocation for each request based on these JCL parameters, consistent with the data storage policies implemented by the mainframe owner. For example, ACS may direct the dataset to a particular data storage device, or a particular type of data storage device based on these data storage policies. It is important to note that the system described by Healy is implemented after the ACS, which leaves open the possibility that the Healy system might override ACS data storage policies. This is particularly troublesome if the Healy system does not provide a clear audit trail of its decision-making process for the allocation of each dataset.
3. Solution to the Problem
The present invention provides a system for monitoring actual data storage requirements for each dataset and automatically modifying JCL parameters to include space allocations based on historical requirements for each dataset. This can be accomplished either by directly modifying the space allocation requests in such JCL statements, by replacing these parameters in such JCL statements with an appropriate DATACLAS parameter based on the historical space requirements of the dataset, or by modifying the corresponding parameter fields in the control blocks generated from such JCL statements by the JCL interpreter. The present invention can also be used to monitor actual use patterns for each dataset and automatically modify JCL parameters to include an appropriate MGMTCLAS parameter governing dataset migration.
In contrast to the system disclosed by Healy, the present invention does not require modification of the operating system. In addition, the present invention also has a significant advantage in that the modified JCL can be viewed by the JCL programmer, unlike Healy. The present invention allows the programmer to review specific proposed changes to the programmer's JCL statements to optimize allocation of storage resources. The modified JCL can also be reused by the programmer in subsequent job runs. In addition, the present system modifies JCL parameters before they are processed by the ACS. This means that ACS retains ultimate control over the final allocation of each dataset, which eliminates the possibility that the present system might somehow override ACS data storage policies. Therefore, this approach maintains the integrity of ACS data storage policies and controls.